Digital signal processors (DSPs) are special-purpose processors utilized for digital processing. Signals are often converted from analog form to digital form, manipulated digitally, and then converted back to analog form for further processing. Digital signal processing algorithms typically require a large number of mathematical operations to be performed quickly and efficiently on a set of data.
DSPs thus often incorporate specialized hardware to perform software operations that are often required for math-intensive processing applications, such as addition, multiplication, multiply-accumulate (MAC), and shift-accumulate. A Multiply-Accumulate architecture, for example, recognizes that many common data processing operations involve multiplying two numbers together, adding the resulting value to another value and then accumulating the result. Such basic operations can be efficiently carried out utilizing specialized high-speed multipliers and accumulators.
A vector processor implements an instruction set containing instructions that operate on vectors (i.e., one-dimensional arrays of data). The scalar DSPs, on the other hand, have instructions that operate on single data items. Vector processors offer improved performance on certain workloads.
DSPs and vector processors, however, generally do not provide specialized instructions to support complex exponential functions. Increasingly, however, there is a need for complex exponential operations in processors. For example, complex exponential operations are needed when a first complex number is multiplied by a second complex number. The complex exponential function is important as it provides a basis for periodic signals as well as being able to characterize linear, time-invariant signals.
A need therefore exists for digital processors, such as DSPs and vector processors, having an instruction set that supports a complex exponential function.